Web sites, web applications, and other web-based technologies have become pervasive parts of modern computing. Typical web browsers support rendering interactive applications using a combination of various textual markup languages, stylesheets, and scripting languages such as JavaScript. In particular, current web browsers may support rendering web applications developed using HTML5 and related technologies, including support for various types of multimedia, graphics, sound, and network communication protocols.
Games are popular applications for many computer systems. Accordingly, various types of game engines have been developed to provide common functionality typical for games, including graphics (e.g., two-dimensional graphics such as sprites and/or three-dimensional graphics), user input processing, game state management, and other functions. Many modern games are web-based and execute in a web browser or similar web rendering engine. Multiple approaches have been used to incorporate game engines into web-based games. For example, certain web-based games include a game engine implemented using a web scripting language such as JavaScript. As another example, web-based games may communicate with an out-of-process game engine using an interprocess communication/message passing interface such as the Google® Native Client (NaCl) interface. As still another example, certain games include a native game engine that is bound to a dedicated JavaScript engine and associated interface, such as Cocos2D-JSB, without incorporating a full web rendering engine.